iT邦幫忙

2026 iThome 鐵人賽

DAY 16
0

前言

上篇做到 /ai/next 的時候,我已經可以把任務交給 Gemini,讓它幫我判斷:「我現在最應該先做哪一個?」
今天要先處理一個更基本的問題:AI 到底拿不拿得到資料庫裡的任務?

修改 /tasks/ai-data

用原有的task/ai-data 整理得更完整一點,讓它正式成為「給 AI 使用的資料」。
新增

task["deadline"] = task["deadline"].strftime("%Y-%m-%d %H:%M:%S")

它就是把下面這種 Flask 自動把 datetime 轉成 HTTP 日期的格式。

Wed, 09 Sep 2026 23:59:00 GMT

整理成比較乾淨易懂的

2026-09-09 23:59:00

建立ai/data-test

@app.route("/ai/data-test", methods=["GET"])
def ai_data_test():

    conn = get_connection()
    cursor = conn.cursor(dictionary=True)

    cursor.execute("""
        SELECT
            task_id,
            title,
            description,
            estimated_minutes,
            importance,
            deadline,
            progress,
            status
        FROM tasks
        WHERE status != 'done'
    """)

    tasks = cursor.fetchall()

    for task in tasks:
        task["deadline"] = task["deadline"].strftime("%Y-%m-%d %H:%M:%S")

        task["remaining_minutes"] = (
            task["estimated_minutes"]
            * (100 - task["progress"])
            / 100
        )

    task_json = json.dumps(tasks, ensure_ascii=False)

    cursor.close()
    conn.close()

    prompt = f"""
你是一個待辦事項管理助手。

以下是使用者目前尚未完成的任務:

{task_json}

請閱讀這些任務資料。

目前先不要進行任務排序,
只需要告訴我你是否成功讀取這些任務。

請只回傳一句簡短的中文回答。
"""

    response = client.models.generate_content(
        model="gemini-3.5-flash-lite",
        contents=prompt
    )

    return {
        "answer": response.text
    }

這個api要測的不是:「AI 排得好不好?」
而是:「AI 有沒有成功拿到資料?」

這兩件事情要分開測試,比較容易知道哪裡出問題。

實際使用postman測試http://127.0.0.1:5000/ai/data-test

得到:

{
    "answer": "我已成功讀取這些任務資料。"
}

代表Gemini已經可以成功讀取Flask從資料庫拿取的資料。


今天只是確認:「AI 吃得到資料。」

那明天就可以開始做更完整的串接:MySQL → Flask → Gemini → AI 排序 → 回傳結果

也就是把前幾天做的 /ai/rank,跟今天準備好的資料正式接在一起,這個系統才算真的開始有一點「AI Todo」的樣子。


上一篇
Day 15|我的 Todo,好像開始跟以前不太一樣了
下一篇
Day 17|終於把它們串起來:MySQL × Flask × Gemini
系列文
如果 AI 幫我安排每日的任務?——讓待辦清單不只是清單:LLM × Flask × MySQL 打造動態任務規劃系統 共 17 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言